1. Field of the Invention
The present invention relates to a gateway device, a radio terminal device and a router device which are communication devices for realizing communication protocol containing the transport layer, and a method for controlling a gateway in a communication network.
2. Description of the Background Art
In recent years there are increasing demands for realizing data communications by radio. TCP (Transmission Control Protocol) is widely used as a reliable transport layer protocol in the wire data communications, but the direct application of this protocol to radio communications causes the following problems.
A TCP segment loss in the wire communications implies the congestion of a network so that TCP is designed to avoid the congestion by lowering a data transmission rate when the segment loss is detected. For this reason, the TCP segment loss due to a radio section error and a handoff will also be interpreted as the congestion so that the congestion avoidance operations will be executed more than necessary and as a result the throughput will be lowered more than necessary.
More specifically, when a terminal is carrying out communications, there are cases where packet transmission and reception are stopped due to degradation of a quality of radio transmission path in the network, for example. In such a case, TCP attempts the re-transmission several times using time-out of a re-transmission timer, while setting a congestion window to 1.times.MSS (Maximum Segment Size). This implies that it takes some time before the original transmission rate is fully recovered even when the packet transmission and reception become possible again.
Also, many data communication services utilizing network have a higher likelihood of being used for downloading data from a server terminal to a client terminal, so that there is a recently developed access network using asymmetric transmission rates in which a bandwidth for input to a client terminal is considerably wider than a bandwidth for an output from a client terminal. When such an asymmetric configuration is applied to the radio communications, it is possible to omit mounting a wide bandwidth radio transmitter on a client terminal so that there is an advantage that a client terminal can be formed in a compact size. However, in such a network having asymmetric transmission paths, there are cases where the throughput of the TCP from a server to a client is lowered because the recommended TCP implementation calls for an algorithm which returns one "ack" (acknowledgement) with respect to at least two TCP segments. This is because the throughput from a server to a client cannot exceed a value given by [(bandwidth in client.fwdarw.server direction).times.(2.times.maximum segment size)/ack size].
In order to resolve these problems, there is a proposition to use the usual TCP in a wire network and the radio transport layer in a radio network and relay communications at a border between the wire network and the radio network. This is a scheme in which "selective ack" is used for a high TCP segment loss rate, the congestion problem is handled in such a way that a re-transmission is carried out by not regarding a data loss in the radio section as the congestion, and the asymmetry problem is handled in such a way that the maximum segment size of the TCP in the radio section is made larger.
However, the method in which the transport layer connection is relayed by terminating it once at a gateway is in violation to the end-to-end semantics of the TCP which requires to guarantee that data of interest has reached a receiving side terminal when "ack", i.e., acknowledgement, for that data is received by a transmitting side terminal. This is because the gateway for carrying out the TCP relay at a border of a wire section and a radio section returns "ack" for data to the transmitting side when that data is received at the gateway.
Application layer protocols utilizing TCP include those which require the preservation of the end-to-end semantics and those which do not. In HTTP (HyperText Transfer Protocol), the client sets up a TCP connection prior to a individual HTTP request, and the server disconnects a TCP connection after a response to the HTTP request is transmitted from the client. In this case, the request is completed by a response by the application layer so that no problem arises even when the end-to-end sematics of the TCP are changed. However, it is preferable to preserve the end-to-end semantics of the TCP for protocols such as TELNET (remote terminal protocol).
Also, when it becomes necessary to relay a TCP connection at different gateways as a radio terminal carries out handoff, there is a need to give information regarding states of transport layers in the wire section and the radio section to a new gateway from a gateway that has been relaying the TCP connection for that radio terminal up to now, so as to establish a state capable of relaying the TCP connection for that radio terminal at the new gateway. But as this transfer and establishing of a state takes some time, there has also been a problem that the throughput is lowered when the radio terminal carries out handoff between base stations that are accommodated in different gateways.
In addition, a radio service area in which the gateway can provide the TCP connection relay service should preferably be wider from a viewpoint that the number of handoffs between gateways for carrying out the TCP connection relay can be reduced that way, but when a wide radio service area is served by a single gateway, there arises a problem that the concentration of loads due to the Increased number of radio terminals to be served by that gateway can cause a bottleneck in performance.
Moreover, in the case where not only "ack" of the TCP with respect to data transmitted through a transmission path on a wider bandwidth side but also other data are to be transmitted by multiplexing them in a transmission path on a narrower bandwidth side in the asymmetric communication paths, there appears a phenomenon in which mean and variance of RTT (Round Trip Time) increase. In this case, a bandwidth delay product increases so that the throughput will be lowered unless a receiving window size is enlarged accordingly. However, the receiving window size cannot be enlarged to a sufficient size corresponding to the bandwidth delay product on the wide bandwidth side. Also the transmitting side of the TCP determines RTO (Retransmission Time Out) according to the observed RTT, but as RTO becomes large, the re-transmission wait time at a time of TCP segment loss also increases so that the throughput is lowered.
Also, consider a case where the gateway operation stops after the gateway transmits "ack" for some data with respect to the transmitting side terminal and before the transmission of that data to the receiving side terminal succeed. In this case, the transmitting side terminal discards that data from a re-transmission buffer upon receiving "ack" so that it becomes impossible to retransmit that data. Namely, the TCP connection is a transport layer protocol that is aimed at realizing reliable communications but the introduction of gateway has a contrary effect of lowering the reliability of the TCP.
Also, in the TCP layer and the IP (Internet Protocol) layer, it is possible to utilize standard additional functions that are provided as options. Here, the options include a search of MTU (Maximum Transfer Unit) which is the maximum packet size that can be transferred without fragmentation on a path between communicating terminals, for example. When this procedure is carried out, it becomes possible to transfer data in the maximum packet length that can be transmitted on the path in which the TCP connection is set up and it also becomes possible to avoid spending wasteful processing time because no fragments are produced at intermediate routers and the like on the path. For this reason, there is an advantage that the throughput can be improved in the TCP connection. This procedure is called a path MTU discovery.
An information for controlling such options is attached behind the TCP and IP header as shown in FIG. 29. A terminal A that wishes to utilize the option transmits a TCP segment having a header with this option attached thereto at a time of requesting the TCP connection establishing. Upon receiving this TCP segment having a header with the option attached thereto, a terminal B carries out a prescribed option processing and determines whether to permit or refuse that option. Then, the terminal B transmits a TCP segment that contains an information on permission/refusal. When this information indicates the permission, the optional function will be executed, whereas when this information indicates the refusal, the optional function will not be executed.
As such, there is a need to determine whether or not to permit the option eventually between terminals that set up the connection, but in the case of relaying the connection at a gateway, the connection is set up in division upon receiving the TCP connection establishing request at the gateway, so that there is a problem that the above described exchange cannot be carried out between the terminals that set up the connection.
Also, in TCP, the management of a series of processings in the sequence of: connection establishing.fwdarw.data transmission and reception.fwdarw.connection disconnection, is realized by using a TCP state transition diagram shown in FIG. 30. In FIG. 30, the transmission and reception of actual user data are carried out in the "ESTABLISHED" state. A "CLOSED" state corresponds to a period since the connection release until the connection establishing, where no connection exists. SYN_SENT, SYN_RCVD and LISTEN are connection establishing phases, and the others are connection release phases. In TCP, many states exist as such, and there is a problem that, in the case of carrying out an operation to shift the gateway function from one gateway that is currently carrying out or trying to carry out the TCP connection relay to another gateway, for example, there is a possible for falling into unstable state at a time of shifting that function depending on the state of the original gateway.